package br.com.ceped.bean;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.hibernate.Session;

import br.com.ceped.fachada.Fachada;
import br.com.ceped.modelo.Reserva;
import br.com.ceped.modelo.Reserva_PK;
import br.com.ceped.modelo.Usuario;
import br.com.ceped.util.FacesContextUtil;

@ManagedBean(name="gerenciador_administrador_professor")
@SessionScoped
public class GAdProfessor {
private Fachada fachada;
private Usuario usuario;
private Session s;
private Reserva_PK reserva_PK;
private Reserva reserva;

private List<Reserva> lista_reservas;
	
	public GAdProfessor() {
		fachada = Fachada.obterInstancia();
		this.usuario = (Usuario) FacesContextUtil
				.getSessionAttribute("usuario");
	}
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public List<Reserva> getLista_reservas() {
		s = FacesContextUtil.getRequestSession();
		Date data = new Date();
		Calendar c = Calendar.getInstance();
		c.add(Calendar.MONTH, 1);
		Date date = c.getTime();
		lista_reservas = fachada.listarReserva("reserva_PK.data_da_reserva", data, date,"reserva_PK.usuario.matricula",this.usuario.getMatricula(), s);
		return lista_reservas;
	}
    
	public String cancelar(){
		s = FacesContextUtil.getRequestSession();
	  try{
		  
		  fachada.remover(getReserva(), s);
		  FacesContextUtil.setMessageInformacao("RESERVA ", "");
	  }catch(Exception e){
		  
	  }
	  return null;	  
	}
	
	public String cadastrar(){
		System.out.println(reserva_PK.getEquipamento().getNome());
		return null;
	}


	public void setLista_reservas(List<Reserva> lista_reservas) {
		this.lista_reservas = lista_reservas;
	}

	public Reserva_PK getReserva_PK() {
		return reserva_PK;
	}


	public void setReserva_PK(Reserva_PK reserva_PK) {
		this.reserva_PK = reserva_PK;
	}

	public Reserva getReserva() {
		return reserva;
	}

	public void setReserva(Reserva reserva) {
		this.reserva = reserva;
		cancelar();
	}
	
}
